#include "library.h"
#include "constants.h"
#include "OdomMove.h"
#include "MyPose.h"
#include "Robot.h"
#include "PoseRange.h"

#ifndef INITIALPOSES_H_
#define INITIALPOSES_H_

class InitialPoses {
	tf::TransformListener listener;

	void createInitialPoses(PoseArray &pa, MATRIX &map,
				double initialPoseX, double initialPoseY, double initialPoseTheta, double meanX,
				double meanY, double meanTheta, double deviationX, double deviationY,
				double deviationTheta, int nPoses) ;
public:
	InitialPoses();
	virtual ~InitialPoses();

	void getInitialRobotPoses(const geometry_msgs::PoseWithCovariance &pose, PoseArray &pa, MATRIX &map, const Robot &config);

	void getInitialHumanPoses(const geometry_msgs::PoseStamped &pose, PoseArray &pa, MATRIX &map, const Robot &config);
	void getInitialHumanPoses(double x, double y, double theta, PoseArray &pa, MATRIX &map, const Robot &config);

	void getInitialPoses(const PoseRange &pr, PoseArray &pa, MATRIX &map, int nPoses) ;

};

#endif /* INITIALPOSES_H_ */
